DAY1 上午 第一课 算法入门
PART 1 算法的定义
PART 2 时间复杂度
PART 3 空间复杂度
PART 4 素数问题
1) 埃筛
原理:将所有不大于 n\sqrt{n}n 的所有质数的倍数剔除,剩下的自然数就是质数;
模板:
2) 线性筛
原理:每个非质数只被其最小的质因子对应的最大整数因子剔除 唯一分解定理历史 唯一分解定理数学解释
模板:
DAY1 下午 第二课 STL模板
PART 1 VECTOR
常用成员函数:
函数名 作用 时间复杂度 val.push_back(data) 对val向后插入data O(1) val.pop_back(data) 删除尾数据 O(1) val.size() val内元素个数 O(1) val.clear() 清空val O(N) val.begin() 起始迭代器 / val.end() 末尾迭代器 / val.empty() 判空 /
PART 2 SET
常用成员函数:
函数名 作用 时间复杂度 val.insert(data) 对val插入data O(log(N)) val.erase(it) 1.删除一个it迭代器所指的位置 O(1) val.erase(it) 2.删除值为it的数据 O(log(N)) val.erase(first,last) 3.删除迭代器于{last,first}的数据 O(last-first) val.size() val内元素个数 O(1) val.clear() 清空val O(N) val.begin() 起始迭代器 / val.end() 末尾迭代器 / val.find(data) 在val中寻找data
O(log(N))
模板
PART 3 MAP
常用成员函数:
函数名 作用 时间复杂度 mp.erase(it) 1.删除一个it迭代器所指的位置 O(1) mp.erase(it) 2.删除键为it的数据 O(log(N)) mp.erase(first,last) 3.删除迭代器于{last,first}的数据 O(last-first) mp.size() 键的个数 O(1) mp.clear() 清空 O(N) mp.begin() 起始迭代器 / mp.end() 末尾迭代器 /
DAY2 上午 第三课课 前缀和与差分
PART 1 前缀和与区间和
PART 2 差分与区间修改
DAY2 下午 第四课 递归与递推
PART 1 递归
PART 2 递推
PART 3 例题
(1)平行线分割平面
(2)错排问题
DAY3 上午 第五课 贪心算法
PART 1 概念
PART 2 例题
活动排序
DAY3 下午 第六课 二分
PART 1 二分搜索
查找X
PART 2 LOWER_BOUND AND UPPER_BOUND
SORT 样例代码
DAY4 归并,快排和高精度
PART 1 归并排序
样例代码
PART 2 快速排序
PART 3 高精度算法
背景
加法
减法
乘法
####除法
DAY5 上午 第九课 栈和队列
PART 1 栈
实验性代码[1]
Part 2 队列
实验性代码
Part 3 前后中缀表达式
长度不够喽,第二部分在这里
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
1. 实验性代码指通过代码可视化等手段来更好的发现问题,完成纠错等环节,在后面的笔记中还会有很多 ↩︎